#define _CRT_SECURE_NO_WARNINGS 1
#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;

//int main() {
//    int T;
//    cin >> T;
//    while (T--) {
//        if (T == 1)
//            cout << endl;
//        long long n, m, x, y;
//        cin >> n >> m >> x >> y;
//        vector<long long> v(m);
//        for (int i = 0; i < m; ++i)
//            cin >> v[i];
//
//        long long ans = 0;
//        for (int i = 0; i < m; ++i) {
//            if (n == 0)
//                break;
//
//            if (v[i] > y) {
//                ans += v[i] - x--;
//            }
//        }
//        ans -= n * x;
//        cout << ans << endl;
//
//    }
//    return 0;
//}


int main() {
    long long n, m;
    cin >> n >> m;
    vector<long long> v(n);
    for (int i = 0; i < n; ++i)
        cin >> v[i];
    sort(v.begin(), v.end());

    long long Max = LONG_MIN;
    long long ans = 0;
    int pos = 0;
    for (int i = 0; i < n; ++i)
    {
        if ((long long)(v[i] * (n - i)) > Max) {
            Max = (long long)(v[i] * (n - i));
            pos = i;
        }
    }
    for (int i = 0; i < n; ++i) {
        if (i >= pos)
            ans += v[i] - v[pos];
        else
            ans += v[i];
    }
    cout << ans << endl;
    return 0;
}